using Shared;
using System;
using System.Collections.Generic;
using HDL_ON.Entity;
using HDL_ON.UI.Music;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView;
namespace HDL_ON.UI.UI2.FuntionControlView.HisenseTV
{
///
/// 海信电视界面
///
public class HisenseTvPage : BaseFramLayout
{
#region ■ 变量声明___________________________
///
/// 设备
///
private Function device;
///
/// 上一级界面的设备名字控件
///
private Button btnDeviceName;
///
/// 上一级界面的房间名字控件
///
private Button btnRoomName;
///
/// 头部布局
///
private TopView topView;
BaseFramLayout baseCloseFFL;
VerticalScrolViewLayout vv;
///
/// 当前设备名称
///
private Button btnOpenCurrDeviceName;
///
/// 区域
///
private Button btnOpenCurrDeviceRoom;
///
///收藏图标
///
private Button btnOpenCollectIcon;
CustomFrameLayout shouyeFL;
CustomFrameLayout kaiguanFL;
CustomFrameLayout caidanFL;
Button btn_jia;
Button btn_jian;
CustomButton bofangBtn;
CustomButton zantingBtn;
CustomButton kuaijinBtn;
CustomButton kauituiBtn;
CustomButton jingyinBtn;
CustomButton shezhiBtn;
CustomButton jiechujingyinBtn;
CustomButton fanhuiBtn;
MenuFramLayout muenFrameLayout;
SourceFrameLayout sourceFrameLayout;
Button btnCloseCollectIcon;
Button btnCloseCurrDeviceName;
Button btnCloseCurrDeviceRoom;
Button clickBtn;
///
/// 表示来自那个界面
///
private CommonMethod.Comerom comerom;
///
/// 删除设备后需要更新界面的回调
///
public Action action;
#endregion
///
/// 构造函数
///
/// 设备
/// 上一级界面的设备名字控件(注:不能传null,没有可以传new Button())
/// 上一级界面的房间名字控件(注:不能传null,没有可以传new Button())
public HisenseTvPage(Function function, Button btnDeviceName, Button btnRoomName, CommonMethod.Comerom comerom, Action action)
{
this.device = function;
this.btnDeviceName = btnDeviceName;
this.btnRoomName = btnRoomName;
this.comerom = comerom;
this.action = action;
}
public void Show()
{
//初始化UI
this.InitTopUI();
this.InitOpenUI();
this.InitCloseUI();
this.CurrentAssignPage();
//初始化事件
this.EventListener();
//读取数据
this.ReadData();
}
///
/// 注册事件
///
private void EventListener()
{
//返回
this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
{
this.RemoveFromParent();
};
//设置
this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
{
CommonMethod.Current.MainThread(() =>
{
//调用秀绕的界面
var infoView = new UI.FunctionBaseInfoSetPage(this.device, () =>
{
if (this.btnDeviceName == null || this.btnRoomName == null || this.device == null)
{
return;
}
////刷新显示
this.btnDeviceName.Text = this.device.name;
this.btnRoomName.Text = this.device.GetRoomListName();
//
this.btnOpenCurrDeviceName.Text = this.device.name;
this.btnOpenCurrDeviceRoom.Text = this.device.GetRoomListName();
//
this.btnCloseCurrDeviceName.Text = this.device.name;
this.btnCloseCurrDeviceRoom.Text = this.device.GetRoomListName();
this.CalculatedPosition();//重新计算宽度
});
infoView.actionDel += () =>
{
//解绑设备后
this.RemoveFromParent();
this.action?.Invoke();
};
MainPage.BasePageView.AddChidren(infoView);
infoView.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
});
};
//收藏
this.btnOpenCollectIcon.MouseUpEventHandler += (sender, e) =>
{
btnOpenCollectIcon.IsSelected = this.device.collect = !btnOpenCollectIcon.IsSelected;
this.device.CollectFunction();
};
//首页
shouyeFL.SetClickListener((fl, btnImage, btnText) => { });
//关机
kaiguanFL.SetClickListener((fl, btnImage, btnText) =>
{
vv.Visible = false;
baseCloseFFL.Visible = true;
});
//菜单
caidanFL.SetClickListener((fl, btnImage, btnText) => { });
//音量+
btn_jia.MouseDownEventHandler += (sender, e) => { };
//音量-
btn_jian.MouseDownEventHandler += (sender, e) => { };
//播放
bofangBtn.SetClickListener((btn) => { });
//暂停
zantingBtn.SetClickListener((btn) => { });
//快进
kuaijinBtn.SetClickListener((btn) => { });
//快退
kauituiBtn.SetClickListener((btn) => { });
//静音
jingyinBtn.SetClickListener((btn) => { });
//设置
shezhiBtn.SetClickListener((btn) => { });
//解除静音
jiechujingyinBtn.SetClickListener((btn) => { });
//返回
fanhuiBtn.SetClickListener((btn) => { });
//控制菜单
muenFrameLayout.SetLeftClickListener((muen) =>
{
});
//信号源
sourceFrameLayout.selectAction += (text) =>
{
};
//收藏(关机)
this.btnCloseCollectIcon.MouseUpEventHandler += (sender, e) =>
{
btnCloseCollectIcon.IsSelected = this.device.collect = !btnCloseCollectIcon.IsSelected;
this.device.CollectFunction();
};
//开机
clickBtn.MouseDownEventHandler += (sen, e) =>
{
vv.Visible = true;
baseCloseFFL.Visible = false;
};
}
///
/// 初始数据
///
private void ReadData()
{
CommonMethod.Current.Loading.Start();
CommonMethod.Current.SunThread(() =>
{
try
{
CommonMethod.Current.MainThread(() =>
{
});
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
CommonMethod.Current.Loading.Hide();
});
}
});
}
///
/// 初始化【开机】界面
///
private void InitOpenUI()
{
#region ---界面布局---
vv = new VerticalScrolViewLayout
{
Y = topView.fLayout.Bottom,
Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
};
this.AddChidren(vv);
var baseOpenFL = new BaseFramLayout();
vv.AddChidren(baseOpenFL);
var backgroundOpenFl = new FrameLayout
{
Y = Application.GetRealHeight(24),
X = Application.GetRealWidth(24),
Height = Application.GetRealHeight(648),
Width = Application.GetRealWidth(327),
BackgroundImagePath = "HisenseTv/onbj.png",
};
baseOpenFL.AddChidren(backgroundOpenFl);
baseOpenFL.AdjustRealHeight(16);
btnOpenCollectIcon = new Button
{
X = Application.GetRealWidth(273),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(40),
Height = Application.GetRealWidth(40),
UnSelectedImagePath = "MusicIcon/collect.png",
SelectedImagePath = "MusicIcon/collectSelected.png",
IsSelected = this.device.collect,
};
backgroundOpenFl.AddChidren(btnOpenCollectIcon);
btnOpenCurrDeviceName = new Button
{
TextSize = TextSize.Text24,
TextColor = MusicColor.Text18Color,
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(33),
Y = Application.GetRealHeight(16),
X = Application.GetRealWidth(16),
Text = this.device.name,
TextAlignment = TextAlignment.CenterLeft,
IsBold = true
};
backgroundOpenFl.AddChidren(btnOpenCurrDeviceName);
btnOpenCurrDeviceRoom = new Button
{
TextSize = TextSize.Text12,
TextColor = MusicColor.MusicNoTxetColor,
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(17),
Y = btnOpenCurrDeviceName.Bottom + Application.GetRealHeight(4),
X = Application.GetRealWidth(16),
Text = this.device.GetRoomListName(),
TextAlignment = TextAlignment.CenterLeft,
};
backgroundOpenFl.AddChidren(btnOpenCurrDeviceRoom);
int yHeight = btnOpenCurrDeviceRoom.Bottom + Application.GetRealHeight(16);
shouyeFL = new CustomFrameLayout();
backgroundOpenFl.AddChidren(shouyeFL);
shouyeFL.X = Application.GetRealWidth(24);
shouyeFL.Y = yHeight;
shouyeFL.AddImageView();
shouyeFL.AddTextButtonView();
shouyeFL.GetImageButton().UnSelectedImagePath = "HisenseTv/shouye.png";
shouyeFL.GetTextButton().Text = "首页";
kaiguanFL = new CustomFrameLayout();
backgroundOpenFl.AddChidren(kaiguanFL);
kaiguanFL.X = shouyeFL.Right + Application.GetRealWidth(37);
kaiguanFL.Y = yHeight;
kaiguanFL.AddImageView();
kaiguanFL.AddTextButtonView();
kaiguanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/kaiguan.png";
kaiguanFL.GetTextButton().Text = "关机";
caidanFL = new CustomFrameLayout();
backgroundOpenFl.AddChidren(caidanFL);
caidanFL.X = kaiguanFL.Right + Application.GetRealWidth(37);
caidanFL.Y = yHeight;
caidanFL.AddImageView();
caidanFL.AddTextButtonView();
caidanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/caidan.png";
caidanFL.GetTextButton().Text = "菜单";
var yinliangFL = new FrameLayout();
backgroundOpenFl.AddChidren(yinliangFL);
yinliangFL.Height = Application.GetRealHeight(200);
yinliangFL.Width = Application.GetRealWidth(68);
yinliangFL.Y = shouyeFL.Bottom + Application.GetRealHeight(24);
yinliangFL.X = shouyeFL.X;
yinliangFL.BackgroundColor = 0xffF2F3F7;
yinliangFL.Radius = (uint)Application.GetRealHeight(34);
btn_jia = new Button
{
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "HisenseTv/yingliangjia.png",
Y = Application.GetRealHeight(20),
Gravity = Gravity.CenterHorizontal,
};
yinliangFL.AddChidren(btn_jia);
Button btnText = new Button
{
Y = Application.GetRealHeight(90),
Height = Application.GetRealHeight(20),
Text = "音量",
TextColor = MusicColor.TextColor,
TextSize = TextSize.Text14,
Gravity = Gravity.CenterHorizontal,
};
yinliangFL.AddChidren(btnText);
btn_jian = new Button
{
Y = Application.GetRealHeight(148),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "HisenseTv/yingliangjian.png",
Gravity = Gravity.CenterHorizontal,
};
yinliangFL.AddChidren(btn_jian);
btn_jia.MouseUpEventHandler += (sender, e) =>
{
};
btn_jian.MouseUpEventHandler += (sender, e) =>
{
};
bofangBtn = new CustomButton();
bofangBtn.Text = "播放";
bofangBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(24);
bofangBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
backgroundOpenFl.AddChidren(bofangBtn);
zantingBtn = new CustomButton();
zantingBtn.Text = "暂停";
zantingBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(24);
zantingBtn.X = bofangBtn.Right + Application.GetRealWidth(37);
backgroundOpenFl.AddChidren(zantingBtn);
kuaijinBtn = new CustomButton();
kuaijinBtn.Text = "快进";
kuaijinBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(16);
kuaijinBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
backgroundOpenFl.AddChidren(kuaijinBtn);
kauituiBtn = new CustomButton();
kauituiBtn.Text = "快退";
kauituiBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(16);
kauituiBtn.X = kuaijinBtn.Right + Application.GetRealWidth(37);
backgroundOpenFl.AddChidren(kauituiBtn);
jingyinBtn = new CustomButton();
jingyinBtn.Text = "静音";
jingyinBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(16);
jingyinBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
backgroundOpenFl.AddChidren(jingyinBtn);
shezhiBtn = new CustomButton();
shezhiBtn.Text = "设置";
shezhiBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(16);
shezhiBtn.X = jingyinBtn.Right + Application.GetRealWidth(37);
backgroundOpenFl.AddChidren(shezhiBtn);
jiechujingyinBtn = new CustomButton();
jiechujingyinBtn.Text = "解除静音";
jiechujingyinBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(16);
jiechujingyinBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
backgroundOpenFl.AddChidren(jiechujingyinBtn);
fanhuiBtn = new CustomButton();
fanhuiBtn.Text = "返回";
fanhuiBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(16);
fanhuiBtn.X = jiechujingyinBtn.Right + Application.GetRealWidth(37);
backgroundOpenFl.AddChidren(fanhuiBtn);
TypeFrameLayout typeFrameLayout = new TypeFrameLayout();
typeFrameLayout.middLayout.Y = yinliangFL.Bottom + Application.GetRealHeight(32);
typeFrameLayout.AddView(backgroundOpenFl);
muenFrameLayout = new MenuFramLayout();
muenFrameLayout.Y = Application.GetRealHeight(482);
muenFrameLayout.AddView(backgroundOpenFl);
sourceFrameLayout = new SourceFrameLayout();
sourceFrameLayout.Y = Application.GetRealHeight(482);
backgroundOpenFl.AddChidren(sourceFrameLayout);
sourceFrameLayout.LoadSourcePage();
muenFrameLayout.Visible = true;
sourceFrameLayout.Visible = false;
typeFrameLayout.SetLfteClickListener(() =>
{
muenFrameLayout.Visible = true;
sourceFrameLayout.Visible = false;
});
typeFrameLayout.SetRightClickListener(() =>
{
muenFrameLayout.Visible = false;
sourceFrameLayout.Visible = true;
});
#endregion
}
///
/// 初始化【关机】界面
///
private void InitCloseUI()
{
#region ---界面布局---
baseCloseFFL = new BaseFramLayout
{
Y = topView.fLayout.Bottom,
Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
};
this.AddChidren(baseCloseFFL);
var backgroundCloseFl = new FrameLayout
{
Y = Application.GetRealHeight(24),
X = Application.GetRealWidth(24),
Height = Application.GetRealHeight(526),
Width = Application.GetRealWidth(327),
BackgroundImagePath = "HisenseTv/offbj.png",
};
baseCloseFFL.AddChidren(backgroundCloseFl);
baseCloseFFL.AdjustRealHeight(16);
btnCloseCollectIcon = new Button
{
X = Application.GetRealWidth(273),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(40),
Height = Application.GetRealWidth(40),
UnSelectedImagePath = "MusicIcon/collect.png",
SelectedImagePath = "MusicIcon/collectSelected.png",
IsSelected = this.device.collect,
};
backgroundCloseFl.AddChidren(btnCloseCollectIcon);
btnCloseCurrDeviceName = new Button
{
TextSize = TextSize.Text24,
TextColor = MusicColor.Text18Color,
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(33),
Y = Application.GetRealHeight(16),
X = Application.GetRealWidth(16),
Text = this.device.name,
TextAlignment = TextAlignment.CenterLeft,
IsBold = true
};
backgroundCloseFl.AddChidren(btnCloseCurrDeviceName);
btnCloseCurrDeviceRoom = new Button
{
TextSize = TextSize.Text12,
TextColor = MusicColor.MusicNoTxetColor,
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(17),
Y = btnCloseCurrDeviceName.Bottom + Application.GetRealHeight(4),
X = Application.GetRealWidth(16),
Text = this.device.GetRoomListName(),
TextAlignment = TextAlignment.CenterLeft,
};
backgroundCloseFl.AddChidren(btnCloseCurrDeviceRoom);
var btnOffTvBj = new Button
{
Y = Application.GetRealHeight(108),
Height = Application.GetRealWidth(198),
Width = Application.GetRealWidth(198),
UnSelectedImagePath = "HisenseTv/offtvbj.png",
Gravity = Gravity.CenterHorizontal,
};
backgroundCloseFl.AddChidren(btnOffTvBj);
var btnText = new Button
{
Y = btnOffTvBj.Bottom + Application.GetRealHeight(20),
Width = Application.GetRealWidth(200),
Height = Application.GetRealHeight(22),
TextSize = TextSize.Text16,
TextColor = MusicColor.TextColor,
Text = "已关机",
TextAlignment = TextAlignment.Center,
Gravity = Gravity.CenterHorizontal,
Padding = new Padding(0, 16, 0, 16),
};
backgroundCloseFl.AddChidren(btnText);
var offFl = new FrameLayout
{
Y = btnText.Bottom + Application.GetRealHeight(91),
Width = Application.GetRealHeight(32),
Height = Application.GetRealWidth(32 + 20),
Gravity = Gravity.CenterHorizontal,
};
backgroundCloseFl.AddChidren(offFl);
var btnOffIcon = new Button
{
Height = Application.GetRealWidth(32),
Width = Application.GetRealWidth(32),
UnSelectedImagePath = "HisenseTv/on.png",
Gravity = Gravity.CenterHorizontal,
};
offFl.AddChidren(btnOffIcon);
var btnOffText = new Button
{
Y = btnOffIcon.Bottom + Application.GetRealHeight(4),
Height = Application.GetRealHeight(16),
TextSize = TextSize.Text12,
TextColor = MusicColor.TextCancelColor,
Text = "开机",
TextAlignment = TextAlignment.Center,
Gravity = Gravity.CenterHorizontal,
Padding = new Padding(0, 2, 0, 2),
};
offFl.AddChidren(btnOffText);
clickBtn = new Button
{
Width = Application.GetRealHeight(32),
Height = Application.GetRealWidth(32 + 20),
};
offFl.AddChidren(clickBtn);
#endregion
}
///
/// 初始化头部
///
private void InitTopUI()
{
this.BackgroundColor = MusicColor.ViewColor;
this.topView = new TopView();
this.topView.setBtn.Visible = true;
this.topView.topNameBtn.TextID = StringId.dianshi;
this.AddChidren(topView.TopFLayoutView());
}
///
/// 根据设备开关状态显示指定显示界面
/// (进来的时候用到)
///
///
private void CurrentAssignPage()
{
if (this.device == null)
{
vv.Visible = false;
baseCloseFFL.Visible = true;
return;
}
if (this.device.GetAttrState("on_off") == "on")
{
vv.Visible = true;
baseCloseFFL.Visible = false;
}
else
{
vv.Visible = false;
baseCloseFFL.Visible = true;
}
}
///
/// 重新计算宽度(设备名称,房间控件)
///
private void CalculatedPosition()
{
//开机状态
this.btnOpenCurrDeviceName.Width = this.btnOpenCurrDeviceName.GetTextWidth();
this.btnOpenCurrDeviceName.Width += 10;
if (this.btnOpenCurrDeviceName.GetTextWidth() > this.btnOpenCollectIcon.X)
{
//重新计算宽度
this.btnOpenCurrDeviceName.Width = this.btnOpenCollectIcon.X + Application.GetRealWidth(-10);
}
this.btnOpenCurrDeviceRoom.Width = this.btnOpenCurrDeviceRoom.GetTextWidth();
this.btnOpenCurrDeviceRoom.Width += 10;
if (this.btnOpenCurrDeviceRoom.GetTextWidth() > this.btnOpenCollectIcon.X)
{
//重新计算宽度
this.btnOpenCurrDeviceRoom.Width = this.btnOpenCollectIcon.X + Application.GetRealWidth(-20 - 10);
}
//关机状态
this.btnCloseCurrDeviceName.Width = this.btnCloseCurrDeviceName.GetTextWidth();
this.btnCloseCurrDeviceName.Width += 10;
if (this.btnCloseCurrDeviceName.GetTextWidth() > this.btnCloseCollectIcon.X)
{
//重新计算宽度
this.btnCloseCurrDeviceName.Width = this.btnCloseCollectIcon.X + Application.GetRealWidth(-10);
}
this.btnCloseCurrDeviceRoom.Width = this.btnCloseCurrDeviceRoom.GetTextWidth();
this.btnCloseCurrDeviceRoom.Width += 10;
if (this.btnCloseCurrDeviceRoom.GetTextWidth() > this.btnCloseCollectIcon.X)
{
//重新计算宽度
this.btnCloseCurrDeviceRoom.Width = this.btnCloseCollectIcon.X + Application.GetRealWidth(-20 - 10);
}
//this.cellFrame.X = this.btnCurrDeviceRoom.Right + Application.GetRealWidth(20);
}
}
///
/// 自定义(首页,关机,菜单)容器
///
class CustomFrameLayout : FrameLayout
{
public const int widthFrameLayout = 68;
public const int heightFrameLayout = 68 + 8 + 20;
public const int interval = 37;//行中的列间隔值
public CustomFrameLayout(int width = widthFrameLayout, int height = heightFrameLayout)
{
this.Width = Application.GetRealWidth(width);
this.Height = Application.GetRealHeight(height);
}
Button btnImage = new Button
{
Width = Application.GetRealWidth(68),
Height = Application.GetRealWidth(68),
Gravity = Gravity.TopCenter,
Name = "btnImage",
};
Button btnText = new Button
{
Width = Application.GetRealWidth(68),
Height = Application.GetRealWidth(20),
TextID = StringId.dangqianmenweiguan,
TextSize = TextSize.Text14,
TextColor = MusicColor.TextColor,
TextAlignment = TextAlignment.Center,
Gravity = Gravity.CenterHorizontal,
Name = "btnText",
IsMoreLines = true,
};
public void AddImageView()
{
this.AddChidren(btnImage);
}
public void AddTextButtonView()
{
btnText.Y = Application.GetRealHeight(8) + btnImage.Bottom;
this.AddChidren(btnText);
}
public Button GetImageButton()
{
return this.btnImage;
}
public Button GetTextButton()
{
return this.btnText;
}
///
/// 事件监听方法
///
/// 回调(第一个是父类对象;第二个是图标对象;第三个是状态对象
/// 注意:在SetClickListener()前面调用AddImageView()才有效
/// 注意:在SetClickListener()前面调用AddImageView()才有效
public void SetClickListener(Action action)
{
EventHandler DownClick = (sender, e) =>
{
this.BackgroundColor = 0xFFF2F3F7;
action?.Invoke(this, btnImage, btnText);
};
this.MouseDownEventHandler += DownClick;
btnImage.MouseDownEventHandler += DownClick;
btnText.MouseDownEventHandler += DownClick;
EventHandler UpClick = (sender, e) =>
{
this.BackgroundColor = 0x00000000;
};
this.MouseUpEventHandler += UpClick;
btnImage.MouseUpEventHandler += UpClick;
btnText.MouseUpEventHandler += UpClick;
}
}
///
/// 按键容器
///
class CustomButton : Button
{
public CustomButton()
{
this.Width = Application.GetRealWidth(68);
this.Height = Application.GetRealHeight(38);
this.TextSize = 14;
this.TextColor = MusicColor.TextColor;
this.TextAlignment = TextAlignment.Center;
this.IsMoreLines = true;
this.BackgroundColor = 0xffECEDEE;
this.Radius = (uint)Application.GetRealHeight(30);
}
///
/// 事件监听方法
///
/// 回调(第一个是父类对象
public void SetClickListener(Action